Database management and administration is an extremely important yet difficult task. As database systems grow they become increasingly complex to manage. Some database systems utilize client management products, such as capacity planning products, to proactively monitor one or more client machines, especially in large enterprise configurations utilizing multiple machines dedicated to specific functions within the network. These capacity planning products require a skilled administrator to monitor the behavior of a database, and to adjust the hardware and software configuration in order to keep pace with growth. Among other things, the administrator's job can include continuous monitoring of the database's performance and knob tuning, as well as continuous reconfiguration, either to update the database resources or re-organize them in a different way.
Server databases, such as a Standard Query Language (SQL) database and other databases, use physical files and logical file groups to manage storage space of those databases. Due to normal growth patterns, these files and file groups can eventually become full. In an ideal situation, someone manually increases the size of these files or file groups. However, managing capacity levels of these files and file groups can be a difficult and time-consuming problem for data centers that have hundreds or even thousands of databases, with each database having many files and file groups. Existing solutions to this problem measure how full a storage area, such as a database or disk drive, is at a given time. These solutions merely convey how much capacity the storage area has left.
According to one technique, a database management engine has the ability to automatically grow a file after the database management engine determines that a database component is full. The database management engine grows the database component by a pre-set amount or by a predetermined percentage of its total capacity. This can reduce the likelihood of unexpected failure due, for example, to a file group running out of disk space. Such “auto growth” approaches have performance penalties, which can sometimes cause an application failure.
According to another technique, software-called “alerts” can provide a notification when a database or disk drive reaches a certain capacity level or “level of fullness” (e.g., 90 percent full). Due to a large number of false positives such alerts may not be useful. For instance, a slowly growing or shrinking database may remain 90 percent full indefinitely, without negative consequences.